package appController

import (
	"CMETO/models"
	"net/http"
	"os"

	"github.com/gin-gonic/gin"
)

// 机构介绍部分的APP
type AboutController struct{}

// @Summary 获取机构文本
// @Description 获取机构文本内容
// @Tags APP管理
// @Accept json
// @Produce json
// @Failure 404 {object} models.ErrorResult "请求失败"
// @Router /app/about [get]
func (l AboutController) GetAbout(ctx *gin.Context) {
	content, err := os.ReadFile("./about.txt")
	if err != nil {
		ctx.JSON(http.StatusOK, &models.ErrorResult{
			Msg:    "获取失败",
			Code:   "400",
			Result: nil,
		})
	} else {
		result := models.AboutResult{Content: string(content)}
		ctx.JSON(http.StatusOK, &models.ResultCommon[models.AboutResult]{
			Msg:    "获取成功",
			Code:   "200",
			Result: result,
		})
	}
}

// @Summary 更新机构文本
// @Description 获取机构文本内容
// @Tags APP管理
// @Accept json
// @Produce json
// @Failure 404 {object} models.ErrorResult "更新失败"
// @Router /app/about [put]
func (l AboutController) UpdateAbout(ctx *gin.Context) {
	about := models.AboutResult{}
	if err := ctx.ShouldBindJSON(&about); err != nil {
		ctx.JSON(http.StatusOK, &models.ErrorResult{
			Msg:    "修改失败",
			Code:   "400",
			Result: nil,
		})
		return
	}

	err := os.WriteFile("./about.txt", []byte(about.Content), 0644)
	if err != nil {
		ctx.JSON(http.StatusOK, &models.ErrorResult{
			Msg:    "修改失败",
			Code:   "400",
			Result: err,
		})
	} else {
		ctx.JSON(http.StatusOK, &models.ResultCommon[string]{
			Msg:    "修改成功",
			Code:   "200",
			Result: "",
		})
	}
}
